#pragma once
#include "GameStateManager.h"

namespace game
{
	/**
	class		PlayerController
	Purpose		Attach to entity to allow it to be controlled by player
	Usage		Implement,extend contructor and override HandleInput
	Methods:
		get_game_state_manager:	returns the game state manager
		HandleInput:			modify game state depending on input from 
								getManager() -> getInput
	**/
	class PlayerController
	{
		GameStateManager * _game_state_manager;
	public:
		PlayerController(GameStateManager * gsm){_game_state_manager = gsm;}
		GameStateManager * get_game_state_manager(){return _game_state_manager;}
		virtual void HandleInput()= 0;
		virtual ~PlayerController(){};
	};
}